import { defineConfig } from "vite";

export default defineConfig({
  build: {
    rollupOptions: {
      output: {
        assetFileNames: '[hash].name.[ext]',
      }
    }
  },
  plugins: [
    {
      config(options) {
        // console.log('config options执行', options);
      },
      configureServer(server) {
        server.middlewares.use((req, res, next) => {
          // 自定义请求处理...
        })
      },
      transformIndexHtml(html) {
        return html.replace(
          /<title>(.*?)<\/title>/,
          `<title>Title replaced!</title>`,
        )
      },
      configResolved(options) {
        // 整个配置文件的解析流程完全完毕以后会走的钩子
        // vite内部有一个默认的配置文件
        // console.log('configResolves options', options);
      },
      configurePreviewServer(server) { // 配置打包后previewServer的钩子
        // 返回一个钩子，会在其他中间件安装完成后调用
        // return () => {
        //   server.middlewares.use((req, res, next) => {
        //     // 自定义处理请求 ...
        //   })
        // }
      },
      options(rollupOptions) {
        // universal hooks通用钩子 是vite和rollup都会关注的hooks
        console.log('rollupOptions', rollupOptions);
      },
      buildStart(fullRollupOptions) {
        console.log('fullRollupOptions', fullRollupOptions);
      }
    }
  ]
})

// optimizeDeps 和 server是默认的命令行CLI参数